package com.chuan.thinkingjava.algorithm;

import java.util.Arrays;

/**
 * @author Bowen
 * @version 1.0.0
 * @ClassName MaopaoSort.java
 * @Description 冒泡排序
 * @createTime 2020年12月15日 14:57:00
 */
public class MaopaoSort {


    /**
     * 相邻两个数字相比较，前一个数字大于后一个数字 则交换
     * 外层循环控制剩余循环次数，
     * 内层循环控制实际循环遍历数组
     */
    public static void main(String[] args) {
        int[] arry = new int[]{34,1,5,64,13,64,3,6,86,24,4,6,2,74,25,7,56};
        sort(arry);
        System.out.println(Arrays.toString(arry));
    }

    private static void sort(int[] arry) {
        for (int i = 0; i < arry.length - 1; i++) {
            //优化------  当一趟下来两者都没交换则证明已经完成排序，减少循环次数
            boolean flag = true;
            for (int j = 0; j < arry.length - i - 1; j++) {
                if (arry[j] > arry[j + 1]) {
                    int temp = arry[j + 1];
                    arry[j + 1] = arry[j];
                    arry[j] = temp;

                    flag = false;
                }
            }
            if (flag) {
                break;
            }
        }
    }
}